/* entity */
import Field from '@model/entity/Field'
/* vue */
import { VNode } from 'vue/types/vnode'
import { CreateElement } from 'vue/types/vue'

interface Column {
  // 对齐方式
  align?: string
  // 是否显示
  bool?: boolean
  // 导出别名
  exportAlias?: string
  // 是否导出
  export?: boolean
  // 导出是否不选中
  exportNoChecked?: boolean
  // 字段
  field?: string
  fieldName?: string
  // 固定列
  fixed?: boolean | 'left' | 'right'
  fixLeft?: boolean | string | undefined
  // 分组用的
  group?: string
  id?: string | number
  // 描述文本
  label?: string
  // 最小宽度
  minWidth?: string | null
  // 宽
  width?: string | null | number
  /**
   * 表内排序
  */
  orderId?: number | null
  // 是否显示，基本用于表格
  show?: boolean
  // 是否支持排序
  sortable?: boolean | string
  // 渲染方法
  render?: (h: CreateElement, data: any, instance: Vue) => VNode | string
  renderCell?: (h: CreateElement, column: Column, row: any, instance: Vue) => VNode | string
  renderHeader?: (h: CreateElement, column: Column, instance: Vue) => VNode | string
  // 字段类型
  formType?: string | null
  // 是否为系统字段
  isSystem?: Boolean,
  // 是否为结算字段
  isBalanceField?: Boolean
  setting?: Record<string, any>,
  // 是否不可编辑字段
  disabled?:Boolean,
    
  // 是否是编辑状态
  isEdit?: boolean;
}

export default Column
